package Z11_12_immutable;

import lombok.extern.slf4j.Slf4j;

import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;

/**
 * @author： pang-yun
 * @date： 2021-11-12 10:12
 * 功能目的 ：用于  simpleDateFormat 是可变类， 在 多线程中会出现问题
 *
 * dateTimeFormatter 是 immutable 类， 会线程安全
 */

@Slf4j
public class DateFormat {
    public static void main(String[] args) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        for (int i = 0; i < 10; i++) {
            // 出现异常
//           new Thread(()->{
//               try {
//                   log.info("{}", format.parse("1995-08-16"));
//               } catch (ParseException e) {
//                   e.printStackTrace();
//               }
//           }).start();

            //  synchronized   加锁之后不会再出问题 对性能有影响
//            synchronized (format){
//                new Thread(
//                        ()->{
//                            try {
//                                log.info("{}",format.parse("1995-08-16"));
//                            } catch (ParseException e) {
//                                e.printStackTrace();
//                            }
//                        }
//                ).start();
//            }

            new Thread(() -> {
                log.info("{}",dateTimeFormatter.parse("1995-08-16"));
            }).start();

        }
    }
}
